home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / faq / kjvcbibl.lha / cbible / rexx / linkexec.thnkr < prev    next >
Text File  |  1993-01-03  |  10KB  |  167 lines

  1. /* translate Thinker links */
  2. arg str       /* get the link and assign to a variable */
  3. lngth = length(str)
  4. say str
  5. address "Thinker"  /* send unrecognized commands to Thinker */
  6. trace all      /* intermediate tracing when run from a shell */
  7. loc = 1      /* initialize the location variable */
  8. str1 = ""    /* initialize the string variables to null */
  9. str2 = ""
  10. str3 = ""
  11.  
  12. call verse()
  13.  
  14. if ch = ";" then pass() /* if in correct format, don't change */
  15. else if ch = "," then call verse()
  16. else if ch = "-" then call verse()
  17. else if datatype(ch,m) then call book()
  18.  
  19. call chapter()
  20.  
  21. call book()
  22.  
  23. verse:
  24.     if datatype(nextch(),n) then do      /* if last char is a number */
  25.         str3 = ch                        /* start assigning the verse variable */
  26.         nextch()                         /* get 2nd from last char */
  27.         do while datatype(ch,n)          /* repeat loop while number */
  28.             str3 = ch || str3            /* add number to left of verse string */
  29.             nextch()
  30.             end
  31.     end
  32.     else pass()                          /* if link doesn't end in number, send back */
  33. return
  34.  
  35. chapter:
  36.     if datatype(nextch(),n) then str2 = ch /* start chapter string */
  37.     nextch()
  38.     do while datatype(ch,n)     /* complete chapter string */
  39.         str2 = ch || str2
  40.         nextch()
  41.     end
  42. return
  43.  
  44. book:
  45.     if datatype(ch,m) then str1 = ch   /* find end of book */
  46.     else if datatype(nextch(),m) then str1 = ch
  47.     do forever
  48.         nextch()
  49.         str1 = ch || str1
  50.     end
  51. return
  52.  
  53. nextch:
  54.     ch = left(right(str,loc),1)
  55.     loc = loc + 1
  56.     if loc = lngth + 2 then finish()
  57.     else return ch
  58.  
  59. pass:
  60.     jump label first str
  61.     exit
  62.  
  63. finish:
  64.     if str1 ~= "" then do
  65.         call translatestr1()
  66.         if str2 = "" then do
  67.             str = str1 || ":," || str3
  68.             pass()
  69.             end
  70.         else do
  71.             str = str1 || ":," || str2 || ";" || str3
  72.             pass()
  73.             end
  74.     end
  75.     else if str2 = "" then do
  76.         str = str3
  77.         pass()
  78.     end
  79.     else str = str2 || ";" || str3
  80.     pass()
  81. return
  82.  
  83. translatestr1:
  84.     select
  85.     when (str1 = "GENESIS") | (str1 = "GE") then str1 = "Gen"
  86.     when (str1 = "EXODUS") | (str1 = "EX") then str1 = "Exo"
  87.     when (str1 = "LEVITICUS") | (str1 = "LE") then str1 = "Lev"
  88.     when (str1 = "NUMBERS") | (str1 = "NU") then str1 = "Num"
  89.     when (str1 = "DEUTERONOMY") | (str1 = "DE") then str1 = "Deu"
  90.     when (str1 = "JOSHUA") | (str1 = "JOSH") then str1 = "Jos"
  91.     when (str1 = "JUDGES") | (str1 = "JUDG") then str1 = "Jug"
  92.     when (str1 = "RUTH") | (str1 = "RU") then str1 = "Rut"
  93.     when (str1 = "1SAMUEL") | (str1 = "ISAMUEL") | (str1 = "1SAM") | (str1 = "ISAM") | (str1 = "1 SAMUEL") | (str1 = "I SAMUEL") | (str1 = "1 SAM") | (str1 = "I SAM") | (str1 = "1 SA") | (str1 = "I SA") then str1 = "1Sa"
  94.     when (str1 = "2SAMUEL") | (str1 = "IISAMUEL") | (str1 = "2SAM") | (str1 = "IISAM") | (str1 = "2 SAMUEL") | (str1 = "II SAMUEL") | (str1 = "2 SAM") | (str1 = "II SAM") | (str1 = "2 SA") | (str1 = "II SA") then str1 = "2Sa"
  95.     when (str1 = "1KINGS") | (str1 = "IKINGS") | (str1 = "1KING") | (str1 = "IKING") | (str1 = "1KIN") | (str1 = "IKIN") | (str1 = "1 KINGS") | (str1 = "I KINGS") | (str1 = "1 KIN") | (str1 = "I KIN") | (str1 = "1 KI") | (str1 = "I KI"),
  96.         then str1 = "1Ki"
  97.     when (str1 = "2KINGS") | (str1 = "IIKINGS") | (str1 = "2KING") | (str1 = "IIKING") | (str1 = "2KIN") | (str1 = "IIKIN") | (str1 = "2 KINGS") | (str1 = "II KINGS") | (str1 = "2 KIN") | (str1 = "II KIN") | (str1 = "2 KI") | (str1 = "II KI"),
  98.         then str1 = "2Ki"
  99.     when (str1 = "1CHRONICLES") | (str1 = "ICHRONICLES") | (str1 = "1CHRON") | (str1 = "ICHRON") | (str1 = "1CHR") | (str1 = "ICHR") | (str1 = "1 CHRONICLES") | (str1 = "I CHRONICLES") | (str1 = "1 CHRON") | (str1 = "I CHRON"),
  100.         | (str1 = "1 CHR") | (str1 = "I CHR") | (str1 = "1 CH") | (str1 = "I CH") | (str1 = "ICH")
  101.         then str1 = "1Ch"
  102.     when (str1 = "2CHRONICLES") | (str1 = "IICHRONICLES") | (str1 = "2CHRON") | (str1 = "IICHRON") | (str1 = "2CHR") | (str1 = "IICHR") | (str1 = "2 CHRONICLES") | (str1 = "II CHRONICLES") | (str1 = "2 CHRON") | (str1 = "II CHRON"),
  103.         | (str1 = "2 CHR") | (str1 = "II CHR") | (str1 = "2 CH") | (str1 = "II CH") | (str1 = "IICH")
  104.         then str1 = "1Ch"
  105.     when (str1 = "EZRA") then str1 = "Ezr"
  106.     when (str1 = "NEHEMIAH") | (str1 = "NE") then str1 = "Neh"
  107.     when (str1 = "ESTER") | (str1 = "ES") then str1 = "Est"
  108.     when (str1 = "JOB") | (str1 = "JO") then str1 = "Job"
  109.     when (str1 = "PSALMS") | (str1 = "PS") | (str1 = "PSALM") then do
  110.         if str2 > 99 then str1 = "Psm"
  111.         else str1 = "Psa"
  112.         end
  113.     when (str1 = "PROVERBS") | (str1 = "PR") then str1 = "PRO"
  114.     when (str1 = "ECCLESIASTES") | (str1 = "EC") then str1 = "Ecc"
  115.     when (str1 = "SONGOFSOLOMAN") | (str1 = "SONG") | (str1 = "SONG OF SOLOMAN") then str1 = "Son"
  116.     when (str1 = "ISAIAH") | (str1 = "IS") then str1 = "Isa"
  117.     when (str1 = "JEREMIAH") | (str1 = "JE") then str1 = "Jer"
  118.     when (str1 = "LAMENTATIONS") | (str1 = "LA") then str1 = "Lam"
  119.     when (str1 = "EZEKIEL") | (str1 = "EZ") then str1 = "Eze"
  120.     when (str1 = "DANIEL") | (str1 = "DA") then str1 = "Dan"
  121.     when (str1 = "HOSEA") | (str1 = "HO") then str1 = "Hos"
  122.     when (str1 = "JOEL") then str1 = "Joe"
  123.     when (str1 = "AMOS") | (str1 = "AM") then str1 = "Amo"
  124.     when (str1 = "OBADIAH") | (str1 = "OB") then str1 = "Oba"
  125.     when (str1 = "JONAH") then str1 = "Jon"
  126.     when (str1 = "MICAH") | (str1 = "MI") then str1 = "Mic"
  127.     when (str1 = "NAHUM") | (str1 = "NA") then str1 = "Nah"
  128.     when (str1 = "HABAKKUK") then str1 = "Hab"
  129.     when (str1 = "ZEPHANIAH") | (str1 = "ZEPH") then str1 = "Zep"
  130.     when (str1 = "HAGGAI") then str1 = "Hag"
  131.     when (str1 = "ZECHARIAH") | (str1 = "ZECH") then str1 = "Zec"
  132.     when (str1 = "MALACHI") then str1 = "Mal"
  133.     when (str1 = "MATTHEW") | (str1 = "MATT") then str1 = "Mat"
  134.     when (str1 = "MARK") then str1 = "Mar"
  135.     when (str1 = "LUKE") | (str1 = "LU") then str1 = "Luk"
  136.     when (str1 = "JOHN") then str1 = "Joh"
  137.     when (str1 = "ACTS") | (str1 = "AC") then str1 = "Act"
  138.     when (str1 = "ROMANS") | (str1 = "RO") then str1 = "Rom"
  139.     when (str1 = "1CORINTHIANS") | (str1 = "ICORINTHIANS") | (str1 = "1COR") | (str1 = "ICOR") | (str1 = "1 CORINTHIANS") | (str1 = "I CORINTHIANS") | (str1 = "1 COR") | (str1 = "I COR") then str1 = "1Co"
  140.     when (str1 = "2CORINTHIANS") | (str1 = "IICORINTHIANS") | (str1 = "2COR") | (str1 = "IICOR") | (str1 = "2 CORINTHIANS") | (str1 = "II CORINTHIANS") | (str1 = "2 COR") | (str1 = "II COR") then str1 = "1Co"
  141.     when (str1 = "GALATIANS") | (str1 = "GA") then str1 = "Gal"
  142.     when (str1 = "EPHESIANS") | (str1 = "EP") then str1 = "Eph"
  143.     when (str1 = "PHILIPPIANS") | (str1 = "PHILIP") then str1 = "Php"
  144.     when (str1 = "COLOSSIANS") | (str1 = "CO") then str1 = "Col"
  145.     when (str1 = "1THESSALONIANS") | (str1 = "ITHESSALONIANS") | (str1 = "1THESS") | (str1 = "ITHESS") | (str1 = "1THES") | (str1 = "ITHES") | (str1 = "1 THESSALONIANS") | (str1 = "I THESSALONIANS") | (str1 = "1 THESS") | (str1 = "I THESS"),
  146.         | (str1 = "1 THES") | (str1 = "I THES") | (str1 = "1 TH") | (str1 = "I TH") | (str1 = "ITH")
  147.         then str1 = "1Th"
  148.     when (str1 = "2THESSALONIANS") | (str1 = "IITHESSALONIANS") | (str1 = "2THESS") | (str1 = "IITHESS") | (str1 = "2THES") | (str1 = "IITHES") | (str1 = "2 THESSALONIANS") | (str1 = "II THESSALONIANS") | (str1 = "2 THESS") | (str1 = "II THESS"),
  149.         | (str1 = "2 THES") | (str1 = "II THES") | (str1 = "2 TH") | (str1 = "II TH") | (str1 = "IITH")
  150.         then str1 = "2Th"
  151.     when (str1 = "1TIMOTHY") | (str1 = "ITIMOTHY") | (str1 = "1TIM") | (str1 = "ITIM") | (str1 = "1 TIMOTHY") | (str1 = "I TIMOTHY") | (str1 = "1 TIM") | (str1 = "I TIM") | (str1 = "1 TI") | (str1 = "I TI") | (str1 = "ITI") then str1 = "1Ti"
  152.     when (str1 = "2TIMOTHY") | (str1 = "IITIMOTHY") | (str1 = "2TIM") | (str1 = "IITIM") | (str1 = "2 TIMOTHY") | (str1 = "II TIMOTHY") | (str1 = "2 TIM") | (str1 = "II TIM") | (str1 = "2 TI") | (str1 = "II TI") | (str1 = "IITI") then str1 = "2Ti"
  153.     when (str1 = "TITUS") | (str1 = "TIT") then str1 = "Tis"
  154.     when (str1 = "PHILEMON") then str1 = "Phm"
  155.     when (str1 = "HEBREWS") | (str1 = "HE") then str1 = "Heb"
  156.     when (str1 = "JAMES") | (str1 = "JA") then str1 = "Jam"
  157.     when (str1 = "1PETER") | (str1 = "IPETER") | (str1 = "1PET") | (str1 = "IPET") | (str1 = "1 PETER") | (str1 = "I PETER") | (str1 = "1 PET") | (str1 = "I PET") | (str1 = "1 PE") | (str1 = "I PE") | (str1 = "IPE") then str1 = "1Pe"
  158.     when (str1 = "2PETER") | (str1 = "IIPETER") | (str1 = "2PET") | (str1 = "IIPET") | (str1 = "2 PETER") | (str1 = "II PETER") | (str1 = "2 PET") | (str1 = "II PET") | (str1 = "2 PE") | (str1 = "II PE") | (str1 = "IIPE") then str1 = "2Pe"
  159.     when (str1 = "1JOHN") | (str1 = "IJOHN") | (str1 = "1JOH") | (str1 = "IJOH") | (str1 = "1 JOHN") | (str1 = "I JOHN") | (str1 = "1 JOH") | (str1 = "I JOH") | (str1 = "1 JO") | (str1 = "I JO") | (str1 = "IJO") then str1 = "1Jo"
  160.     when (str1 = "2JOHN") | (str1 = "IIJOHN") | (str1 = "2JOH") | (str1 = "IIJOH") | (str1 = "2 JOHN") | (str1 = "II JOHN") | (str1 = "2 JOH") | (str1 = "II JOH") | (str1 = "2 JO") | (str1 = "II JO") | (str1 = "IIJO") then str1 = "2Jo"
  161.     when (str1 = "3JOHN") | (str1 = "IIIJOHN") | (str1 = "3JOH") | (str1 = "IIIJOH") | (str1 = "3 JOHN") | (str1 = "III JOHN") | (str1 = "3 JOH") | (str1 = "III JOH") | (str1 = "3 JO") | (str1 = "III JO") | (str1 = "IIIJO") then str1 = "3Jo"
  162.     when (str1 = "JUDE") then str1 = "Jue"
  163.     when (str1 = "REVELATION") | (str1 = "RE") then str1 = "Rev"
  164.     otherwise
  165.     end
  166.     return
  167.